// pages/profile/index.ts
Page({

  /**
   * 页面的初始数据
   */
  data: {
    userInfo: {
      nickName: '',
      avatar: ''
    }
  },
  // 获取昵称
  getUserNickName(ev) {
    // 每当失去焦点, 获取最新输入值, 更改用户名称
    console.log(15, ev);
    this.setUserNickName(ev.detail.value)
  },
  // 修改昵称 ，发请求
  async setUserNickName(nickName) {
    const { code } = await wx.http.put('/userInfo', { nickName })
    // 检测接口调用的结果
    if (code !== 10000) return wx.utils.toast('更新用户信息失败!')

    // 保存用户昵称
    this.setData({ 'userInfo.nickName': nickName })
  },
  // 获取头像
  getUserAvatar(ev) {
    console.log(123, ev.detail.avatarUrl);
    // 每当用户点击头像时, 都能获取到临时地址, 为了使用这个头像需要上传
    this.setUserAvatar(ev.detail.avatarUrl)
  },
  // 调用接口，修改头像
  setUserAvatar(avatarUrl) {
    // 调用接口上传图片
    wx.uploadFile({
      // 上传地址
      url: wx.http.baseURL + '/upload',
      // 临时文件路径
      filePath: avatarUrl,
      // 文件名
      name: 'file',
      // 请求头 因为已经不是 wx.http 所以要重新带
      header: {
        Authorization: getApp().token,
      },
      // 后端接口文档要求的额外数据, 上传的类型是头像
      formData: {
        type: 'avatar',
      },
      success: (res) => {
        console.log('上传成功', res);
        // 转换成json数据
        const data = JSON.parse(res.data)
        // 检测接口调用的结果
        if (data.code !== 10000) return wx.utils.toast('更新头像失败!')
        // 保存并预览图片
        this.setData({ 'userInfo.avatar': data.data.url })
      }

    })
  },
  // 用户信息接口
  async getUserInfo() {
    // 请求数据接口
    const { code, data: userInfo } = await wx.http.get('/userInfo')
    // 校验数据是否合法
    if (code !== 10000) return wx.utils.toast('数据加载失败, 请稍后重试!')
    // 设置数据，更新渲染
    this.setData({ userInfo })
    console.log(70, this.data.userInfo);

  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {
    this.getUserInfo()
  },


})